import Vue from 'vue'
import Vuex from 'vuex'
// vuex的数据都是存储在内存中的，它刷新所有值都要还原
// 持久化
// 1：值修改了就存储到浏览器
// 2：初始值读取浏览器存储
import { setToken, getToken, delToken } from '@/utils/storage'
import { authCurrentUser } from '@/api/user'
Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    token: getToken(), // token的值
    // vue:this.$store.state.token
    // js: import store from '@/store'  store===this.$store
    userInfo: ''
  },
  getters: {},
  mutations: {
    // 修改token
    setUserToken (state, value) {
      state.token = value
      setToken(value)
    },
    // 修改userInfo
    setUserInfo (state, value) {
      state.userInfo = value
    },
    // 删除token
    logout (state) {
      state.token = null
      delToken()
    }
  },
  actions: {
    // 获取用户信息
    async getUserInfo (ctx) {
      const res = await authCurrentUser()
      // 存储到vuex
      ctx.commit('setUserInfo', res.data)
    }
  },
  modules: {}
})
